package com_2;

import java.util.*;

public class StudentDemo1 {//定义了一个学生测试类
    public static void main(String[] args) {
        List<Student> c = new ArrayList<>();//通过多态的形式创建collection集合的实现类对象
        Student s1 = new Student("李白", "99");//创建学生类对象1
        Student s2 = new Student("杜甫", "100");//创建学生类对象2
        c.add(s1);//使用对象调用add方法进行赋值
        c.add(s2);//使用对象调用add方法进行赋值
        c.add(new Student("白居易", "101"));//使用对象调用add方法进行参数存储，并且2使用匿名对象的方法创建第三个学生类对象
        System.out.println(c.remove(0));//使用对象调用调用remove方法进行元素移除
        System.out.println(c);//输出对象
        System.out.println("-------------");//分隔符
        Student s4 = new Student("黑马程序员", "20");//创建学生对象4
        c.add(0, s4);//使用对象调用add方法进行创建对象
        System.out.println(c);//输出对象
        System.out.println("-------------");//分隔符
        try {//使用try语句进行捕获异常，如果没有异常则使用for循环进行遍历
            Student s6 = new Student("黑马程序员", "15");//创建学生对象6
            System.out.println(c.set(6, s6));//IndexOutOfBoundsException并使用对象调用set方法进行设置，同时会发生异常
            for (int i = 0; i < c.size(); i++) {//使用for循环进行遍历，使用对象调用size方法进行获取集合长度
                Student s7 = c.get(i);//创建学生对象7，使用get方法获取集合中的元素
                System.out.println(s7);//输出对象
            }
        } catch (IndexOutOfBoundsException i) {//如果捕获对象则会使用迭代器进行遍历
            Iterator<Student> it = c.iterator();//使用集合类对象调用用iterator方法获取一个迭代器对象
            while (it.hasNext()) {//使用while循环进行判断如果元素存在则继续访问
                Student s5 = it.next();//使用迭代器中的对象调用迭代器的next方法进行获取元素
                System.out.println(s5);//输出返回的元素
            }

        }
    }

}
